/*
    首先是我们的 表格的配置（数组对象）

    每个对象中有三个必须的属性
    prop:对应的字段名称
    label:表格表头展示名称
    width/min_width:列宽（width和min_width自选其一）（width就是固定款度，min_width最小宽度）

    扩展属性
    align:列的对齐方式（left、center、right）默认left
    isEdit:（默认false，为true时开始单元格双击编辑功能）
    type:（列展示格式）具体看以下举例
    show:控制列的显示或隐藏(这里不需要单独写出来，在组件里会自己去添加)

    type:time（后端返回的字段为时间戳，需要我们自己格式化时间）
    {
        prop: 'createDate',
        label: ' 创建时间',
        align: 'center',
        type: 'time',
        width: 180
    }

    type:image（改字段需要以图片的形式展示）
    {
        prop: 'avatar',
        label: '头像',
        align: 'center',
        type: 'image', 
        width: 80
    },

    type:switch（switch开关，一般用于控制该条数据的状态）
    {
        prop: 'userStatus',
        label: '用户状态',
        align: 'center',
        type: 'switch', 
        activeValue: 1, // switch为打开时的值
        inactiveValue: 2,// switch为关闭时的值
        width: 100
    },

    type:status（状态展示，比如这时候后端返回的状态对应的值时1或者是2，肯定是需要转为中文展示的）
    {
        prop: 'userStatus',
        label: '用户状态',
        align: 'center',
        width: 100,
        type: 'status', 
        option: {
            '1': '启用',
            '2': '禁用',
        },
        color: {
            '1': 'success',
            '2': 'info',
        }
    }

    以上就是表格配置信息
*/
const columnsData: any = [
    {
        label: '任务名称',
        prop: 'test_purpose',
        isEdit: true,
        showOverflow: true,
        min_width: 150,
    },
    {
        label: '预期结果',
        prop: 'expected_result',
        isEdit: true,
        showOverflow: true,
        min_width: 150
    },
    {
        label: '申请人',
        prop: 'task_creator',
        isEdit: false,
        showOverflow: false,
        min_width: 80,
    },
    // {
    //     label: '测试人',
    //     prop: 'test_name',
    //     isEdit: false,
    //     min_width: 120
    // },
    {
        label: '状态',
        prop: 'test_status',
        type: 'status', 
        isEdit: false,
        showOverflow: false,
        min_width: 80,
        option: {
            '未开始': '未开始',
            '进行中': '进行中',
            '终止': '已终止',
            '通过': '已通过',
            '不通过': '不通过',
            '排队中': '排队中'
        },
        color: {
            '未开始': 'info',
            '进行中': '',
            '终止': 'danger',
            '通过': 'success',
            '不通过': 'danger',
            '排队中': ''
        }
    },
    {
        label: '测试环境',
        prop: 'test_environment',
        isEdit: false,
        showOverflow: false,
        type: 'status', 
        min_width: 80
    },
    {
        label: '创建时间',
        prop: 'create_time',
        isEdit: false,
        showOverflow: false,
        type: 'time',
        min_width: 100
    },
    {
        label: '完成时间',
        prop: 'finish_time',
        isEdit: false,
        showOverflow: false,
        type: 'time',
        min_width: 100
    }
]


let statusList = [
    {"id": "未开始", "name": "未开始"},
    {"id": "进行中", "name": "进行中"},
    {"id": "终止", "name": "已终止"},
    {"id": "通过", "name": "已通过"},
    {"id": "不通过", "name": "不通过"},
    {'id': "排队中", "name": "排队中"},
]

import { ProductService } from '@/api/product'
import { InferService } from '@/api/infer'
import { EnvironmentService } from '@/api/environment'
import { ModelService } from '@/api/model'

// let productList = []
// let modelList = []
let inferList: never[] = []
let environmentList: never[] = []


const getLists = async () => {
    let res = await ProductService.getProducts();
    // productList = res.data
    res = await InferService.getInfers();
    inferList = res.data
    res = await EnvironmentService.getEnvironments();
    environmentList = res.data
    res = await ModelService.getModels();
    // modelList = res.data
}

await getLists()

/*
    接下来我们来说一下查询的配置
    我们查询时传给后端的数据大多是是这样的
    {
        name:'张三,
        age:1
    }

    下面我只配置了三种情况
    text 就是用户数据关键字查询
    select 是用户选择指定数据查询
    dateTime 根据时间查询

    text 和 dateTime 没什么可说的，重要的是select
    我们之间来解析一条
    { label: "所属菜单", prop: 'menuId', type: 'select', options: dataList, valueKey: 'id', labelKey: 'menuName' },

    label 对应的是我们的名称
    prop 对应的则是字段
    type 类型就不说了，上面说了，目前就三种
    options：（数组对象）上面我会贴出测试数据
    我们这个查询是作用在select下拉菜单上的，且每次数组对象中的数据都是不同的，我们就需要两个变量去存对应的字段
    valueKey:select选择的值
    labelKey:select选择值对应的名称
*/

const queryData: any = [
    { label: "推理", prop: 'test_infer', type: 'select', options: inferList, valueKey: 'test_infer', labelKey: 'test_infer' },
    { label: "环境", prop: 'test_environment', type: 'select', options: environmentList, valueKey: 'test_environment', labelKey: 'test_environment'},
    { label: "状态", prop: 'test_status', type: 'select', options: statusList, valueKey: 'id', labelKey: 'name' },
    { label: "创建时间", prop: 'create_time', type: 'date' },
]
export {
    columnsData,
    queryData
}


